OpenCL Actors - Adding Data Parallelism to Actor-based Programming with CAF
نویسندگان
چکیده
The actor model of computation has been designed for a seamless support of concurrency and distribution. However, it remains unspecific about data parallel program flows, while available processing power of modern many core hardware such as graphics processing units (GPUs) or coprocessors increases the relevance of data parallelism for general-purpose computation. In this work, we introduce OpenCL-enabled actors to the C++ Actor Framework (CAF). This offers a high level interface for accessing any OpenCL device without leaving the actor paradigm. The new type of actor is integrated into the runtime environment of CAF and gives rise to transparent message passing in distributed systems on heterogeneous hardware. Following the actor logic in CAF, OpenCL kernels can be composed while encapsulated in C++ actors, hence operate in a multi-stage fashion on data resident at the GPU. Developers are thus enabled to build complex data parallel programs from primitives without leaving the actor paradigm, nor sacrificing performance. Our evaluations on commodity GPUs, an Nvidia TESLA, and an Intel PHI reveal the expected linear scaling behavior when offloading larger workloads. For sub-second duties, the efficiency of offloading was found to largely differ between devices. Moreover, our findings indicate a negligible overhead over programming with the native
منابع مشابه
A Unified Web-Based Actor Framework
JavaScript is the predominant language when it comes to developing applications for the web. Many of today’s webbased systems are implemented solely in JavaScript due to its applicability to both client and server-side development. This use of JavaScript as a general purpose programming language has sparked a number of efforts to provide programmers with the means to write parallel web applicat...
متن کاملParallel Design Patterns in Ptolemy II using Higher-order Actors EE290N Project Report
The ubiquity of multicore processors nowadays allows for increased performance in applications that are parallelizable. We focus on achieving high performance for a class of data parallel applications which have a static schedule of actor firings. These applications can be run efficiently in parallel and correctly if the actors are stateless. We present a new execution model based on multiplexi...
متن کاملRevisiting Actor Programming in C++
The actor model of computation has gained significant popularity over the last decade. Its high level of abstraction makes it appealing for concurrent applications in parallel and distributed systems. However, designing a real-world actor framework that subsumes full scalability, strong reliability, and high resource efficiency requires many conceptual and algorithmic additives to the original ...
متن کاملThe Symbiosis of Human and Semantic Technology Through the Lens of Actor-Network Theory
Background: Semantic technologies (STs) have made machine reasoning possible by providing intelligent data management methods. This capability has created new forms of interaction between humans and STs, which is called "semantic interaction." The increasing spread of this form of interaction in daily life reveals the need to identify the factors affecting it and introduce the requirements of...
متن کاملThe Incremental Design of Parallel Compiler Intermediate Representations using SPIRE
SPIRE is the first incremental methodology for designing the intermediate representations (IR) of compilers that target parallel programming languages. Its core philosophy is to extend in a systematic manner the IRs found in the compilation frameworks of sequential languages. Avoiding the often-used ad-hoc approach of encoding all parallel constructs as “fake” function calls, SPIRE enables the ...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
- CoRR
دوره abs/1709.07781 شماره
صفحات -
تاریخ انتشار 2017